Efficient Vector Clock for Predicate Detection in Multithreaded Programs

نویسندگان

  • Anurag Agarwal
  • Vijay K. Garg
چکیده

Monitoring global predicates is a fundamental concern in distributed and concurrent systems for its importance during the design, testing and debugging phases of program development. In this paper, we present a generalization of local predicates called the chain predicates. In the context of multithreaded programs, these predicates can be thought of as predicates defined over shared variables instead of local variables as in the case of local predicates. We present a new vector clock algorithm, called the chain vector clock, which tracks only the variables relevant to the predicate. This results in a vector clock of size equal to the number of variables being tracked instead of the number of threads in the system. Based on the chain vector clocks, we modify the algorithm for detecting conjunctive predicates to detect conjunction of chain predicates under the possibly modality. The other algorithms for predicate detection which were based on the local predicates can also be generalized for chain predicates. We also present a lattice theoretic characterization of chain predicates which could be useful in further understanding of the properties of these predicates.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Instrumentation Technique for Online Analysis of Multithreaded Programs

This paper presents an automatic code instrumentation technique, based on multithreaded vector clocks, for extracting the causal partial order on relevant state update events from a running multithreaded program. This technique is used in a formal testing environment, not only to detect, but especially to predict safety errors in multithreaded programs. The prediction process consists of rigoro...

متن کامل

Debugging in a Distributed World: Observation and Control

Debugging distributed programs is considerably more difficult than debugging sequential programs. We address issues in debugging distributed programs and provide a general framework for observing and controlling a distributed computation and its applications to distributed debugging. Observing distributed computations involves solving the predicate detection problem. We present the main ideas i...

متن کامل

Using Induction to Prove Properties of Distributed Programs

Proofs of distributed programs are often informal due to the diiculty of developing formal proofs. Properties of distributed programs are often stated using Lamport's causally-precedes relation and its complement , not-causally-precedes. Properties that involve the causally-precedes relation are fairly straight forward to prove using induction. However, properties that involve not-causally-prec...

متن کامل

Goblint : PATH - SENSITIVE DATA RACE ANALYSIS 1

We present Goblint, a static analyzer for detecting potential data races in the multithreaded C code. The implemented analysis is sound on a “safe” subset of C and sufficiently efficient to be used for race-detection of multithreaded programs up to about 25 thousand lines of code. It uses a global invariant approach to avoid the state space explosion problem and is both contextand path-sensitive.

متن کامل

Checking Concise Specifications for Multithreaded Software

Ensuring the reliability of multithreaded software systems is difficult due to the potential for subtle interactions between threads. Unfortunately, checking tools for such systems do not scale to programs with a large number of threads and procedures. To improve this shortcoming, we present a verification technique that uses concise specifications to analyze large multithreaded programs modula...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004